// store.js
// 引入 Vue 和 Vuex
import Vue from 'vue'
import Vuex from 'vuex'

// 使用 Vuex 插件
Vue.use(Vuex)

// 创建并导出一个 Vuex Store 实例
const store = new Vuex.Store({
  // 状态（state）：存储全局共享的数据
  state: {
    // globalActivities 用于保存活动列表数据，默认为空数组
    globalActivities: []
  },

  // 修改状态的方法集合（mutations）
  mutations: {
    // 设置 globalActivities 的值为传入的 data
    setActivities(state, data) {
      state.globalActivities = data
    },
    
  },

  // 异步操作方法集合（actions）
  actions: {
    // loadActivities 是一个异步 action，用于加载活动数据
    loadActivities({ commit }) {
      // 使用 require 同步加载本地 JSON 文件，并提交到 setActivities mutation
      commit('setActivities', require('@/assets/activities.json'))
    },
    setActivities({ commit }, data) {
      commit('setActivities', data)
    }
  },

  // 模块化管理状态（当前未使用）
  modules: {}
})

// 导出 store 实例，供 main.js 中挂载到 Vue 应用中
export default store